﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace sistemaAcademicoFinanceiroEscolas
{
    public partial class cadastrarValorTurma : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                

                //carregar anos letivos

                string sqlAnoLetivo = "select * from anoLetivo";

                SqlCommand cmdAnoLetivo = new SqlCommand(sqlAnoLetivo, sqlc);
                SqlDataReader myReaderAnoLetivo = cmdAnoLetivo.ExecuteReader();

                ListItem anoLetivoSelecione = new ListItem();
                anoLetivoSelecione.Value = "0";
                anoLetivoSelecione.Text = "Selecione um Ano Letivo";

                lstAnoLetivo.Items.Add(anoLetivoSelecione);

                while (myReaderAnoLetivo.Read())
                {

                    ListItem anoLetivo = new ListItem();

                    anoLetivo.Value = myReaderAnoLetivo["codigoAnoLetivo"].ToString();
                    anoLetivo.Text = myReaderAnoLetivo["descricaoAnoLetivo"].ToString();

                    lstAnoLetivo.Items.Add(anoLetivo);

                }

                cmdAnoLetivo.Dispose();
                myReaderAnoLetivo.Close();

                //anios letivos carregados


                sqlc.Close();


            }

        }

        protected void btnCadastrar_Click(object sender, EventArgs e)
        {
            if ((lstSerie.SelectedValue != "0") & (lstTurma.SelectedValue != "0") & (lstAnoLetivo.SelectedValue != "0"))
            {

                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                //verificar se a mensalidade já não está cadastrada neste ano letivo, serie e turma

                string sqlVerificar = "select codigoAnoLetivo, codigoSerie, codigoTurma from valorTurma where codigoAnoLetivo=" + lstAnoLetivo.SelectedValue + " and codigoSerie=" + lstSerie.SelectedValue + " and codigoTurma=" + lstTurma.SelectedValue;

                SqlCommand cmdAnoLetivo = new SqlCommand(sqlVerificar, sqlc);
                SqlDataReader myReaderVerificar = cmdAnoLetivo.ExecuteReader();

                if (!myReaderVerificar.HasRows)
                {


                    //Cadastrar mensalidade no banco de dados

                    SqlConnection sqld = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                    sqld.Open();

                    string SqlValorTurma = "insert into valorTurma(codigoTurma, codigoAnoLetivo, valorMensalidade, codigoSerie) ";
                    SqlValorTurma = SqlValorTurma + "values(" + lstTurma.SelectedValue + ", " + lstAnoLetivo.SelectedValue + ", '" + txtValorMensalidade.Text + "', " + lstSerie.SelectedValue + ")";

                    SqlCommand cadastrarMatricula = new SqlCommand(SqlValorTurma, sqld);
                    cadastrarMatricula.ExecuteNonQuery();

                    string literalc = "<script language=JavaScript>cadastroRealizado();</script>";
                    form1.Controls.Add(new LiteralControl(literalc));


                    sqld.Close();
                    sqlc.Close();

                }
                else
                {

                    lblValidacao.Text = "O cadastro não pôde ser realizado, pois já existe uma mensalidade para este valor no ano letivo informado.";

                }

                cmdAnoLetivo.Dispose();
                myReaderVerificar.Close();
            }
            else
            {

                lblValidacao.Text = "A série, turma e ano letivo devem ser selecionados.";
            }
        }

        protected void lstAnoLetivo_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlc.Open();

            lstSerie.Items.Clear();
            lstTurma.Items.Clear();

            //Carregar séries

            string sqlSerie = "select * from serie where codigoAnoLetivo = " + lstAnoLetivo.SelectedValue;

            SqlCommand cmdSerie = new SqlCommand(sqlSerie, sqlc);
            SqlDataReader myReaderSerie = cmdSerie.ExecuteReader();

            ListItem serieSelecione = new ListItem();
            serieSelecione.Value = "0";
            serieSelecione.Text = "Selecione uma série";

            lstSerie.Items.Add(serieSelecione);

            while (myReaderSerie.Read())
            {

                ListItem serie = new ListItem();

                serie.Value = myReaderSerie["codigoSerie"].ToString();
                serie.Text = myReaderSerie["descricaoSerie"].ToString();

                lstSerie.Items.Add(serie);


            }

            cmdSerie.Dispose();
            myReaderSerie.Close();
            sqlc.Close();
            //Finalizar carregamento de séries
        }

        protected void lstSerie_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlc.Open();

            string sqlTurmas = "select * from turma where codigoSerie=" + lstSerie.SelectedValue;
            SqlCommand cmd = new SqlCommand(sqlTurmas, sqlc);
            SqlDataReader myReader = cmd.ExecuteReader();

            if (!Page.IsPostBack)
            {

                ListItem turmaSelecione = new ListItem();

                turmaSelecione.Value = "0";
                turmaSelecione.Text = "Selecione uma turma.";

                lstTurma.Items.Add(turmaSelecione);

            }



            while (myReader.Read())
            {

                ListItem turma = new ListItem();

                turma.Value = myReader["codigoTurma"].ToString();
                turma.Text = myReader["descricaoTurma"].ToString();

                lstTurma.Items.Add(turma);

            }

            cmd.Dispose();
            myReader.Close();
        }

        
    }
}
